/* 
  功能1：用户上滑页面，滚动条触底，加载下一页
    1 找到触底函数（微信小程序文档）onReachBottom
    2 判断是否有下一页
      1 获取数据总页数 只有总条数total

        总页数 = Math.ceil(总条数 / 单页数 pagesize)

      2 获取当前页数  pagenum
      3 判断当前页数是否大于等于总页数
    3 如果没有下一页，弹出提示框
    4 否则加载下一页
  功能2：下拉刷新
    需要在json中开启配置enablePullDownRefresh	backgroundTextStyle
    1 找到下拉刷新事件 onPullDownRefresh
    2 重置数据和数组
    3 重置页码为1
*/
import { request } from "../../request/index";
Page({
  data: {
    tabs:[
      {
        id:0,
        value:"综合",
        isActive:true
      },
      {
        id:1,
        value:"销量",
        isActive:false
      },
      {
        id:2,
        value:"价格",
        isActive:false
      }],

    // 商品数据
    goods_list:[]
  },

  //总页数
  totalPages:1,

  // 请求接口的默认参数
  QueryParams:{
    query:"",
    cid:"",
    pagenum:1,
    pagesize:10
  },

  onLoad: function (options) {
    this.QueryParams.cid=options.cid||"";
    this.QueryParams.query=options.query||"";
    this.getGoodsList();
  },

  // 标题点击事件 从子组件传递过来
  handleTabsItemChange(e){
    // 获取索引
    const {index}=e.detail;
    // 修改原数组
    let {tabs}=this.data;
    tabs.forEach((v,i)=>i===index?v.isActive=true:v.isActive=false);
    // 赋值到data
    this.setData({tabs})
  },

  // 获取商品列表数据
  async getGoodsList(){
     const res=await request({url:"/goods/search",data:this.QueryParams});
     // 获取总页数
     const total=res.total;
     this.totalPages=Math.ceil(total/this.QueryParams.pagesize);
     this.setData({
       // 将请求的数据与原来的拼接
       goods_list:[...this.data.goods_list,...res.goods]
     })

     // 关闭下拉刷新窗口
     wx.stopPullDownRefresh();
  },

  // 触底函数
  onReachBottom(){
    if(this.QueryParams.pagenum>=this.totalPages){
      wx.showToast({title: '没有下一页了'})
    }else{
      this.QueryParams.pagenum++;
      this.getGoodsList();
    }
  },

  // 下拉刷新
  onPullDownRefresh(){
    this.setData({
      goods_list:[]
    })
    this.QueryParams.pagenum=1;
    this.getGoodsList();
  }
})